ultimatepopculturefandomcom-20200216-history
PhysX
|operating_system = Windows 7, Windows Vista, Windows XP, Mac OS X, Linux (not GPU accelerated), Wii, PlayStation 3, Xbox 360 |genre = Physics simulation |license = Proprietary, Commercial |website = Nvidia PhysX developer site }} PhysX is a proprietary realtime physics engine middleware SDK. It was developed by Ageia with the purchase of ETH Zurich spin-off NovodeX in 2004. Ageia was acquired by Nvidia in February 2008 The term PhysX can also refer to the PPU expansion card designed by Ageia to accelerate PhysX-enabled video games. Video games supporting hardware acceleration by PhysX can be accelerated by either a PhysX PPU or a CUDA-enabled GeForce GPU (if it has at least 32 CUDA cores), thus offloading physics calculations from the CPU, allowing it to perform other tasks instead. This typically results in a smoother gaming experience and additional visual effects. Middleware physics engines allow game developers to avoid writing their own code to handle the complex physics interactions possible in modern games. PhysX is one of the handful of physics engines used in all of today's games. The PhysX engine and SDK are available for Microsoft Windows, Mac OS X, Linux, PlayStation 3, Xbox 360 and the Wii. The PhysX SDK is provided to developers of all platforms for free, both for commercial and non-commercial use. History What is known today as PhysX originated as a physics simulation engine called NovodeX. The multi-threaded engine was developed by Swiss company NovodeX AG. In 2004, Ageia acquired NovodeX AG and began developing a hardware technology that could accelerate physics calculations, aiding the CPU. Ageia called the technology PhysX PPU (physics processing unit), and the SDK was renamed from NovodeX to PhysX. In 2008, Ageia was itself acquired by graphics technology manufacturer Nvidia. Nvidia started enabling PhysX hardware acceleration on its line of GeForce graphics cards and eventually dropped support for Ageia PPUs. Features PhysX is a multi-threaded physics simulation SDK available for Microsoft Windows, Mac OS X, Linux, PlayStation 3, Xbox 360 and Wii. It supports rigid body dynamics, soft body dynamics, ragdolls and character controllers, vehicle dynamics, volumetric fluid simulation and cloth simulation including tearing and pressurized cloth. APEX PhysX Nvidia APEX technology is a multi-platform scalable dynamics framework first introduced in Mafia II in August 2010. Nvidia's APEX engine comprises the following features: APEX Destruction, APEX Clothing, APEX Particles, APEX Vegetation, and APEX Turbulence. Hardware acceleration .|The top screenshot shows how debris is simulated in Mafia II when PhysX is turned to the highest level in the game settings. The bottom screenshot shows a similar scene with PhysX turned to the lowest level.]] PPU A physics processing unit (PPU) is a processor specially designed to alleviate the calculation burden on the CPU, specifically calculations involving physics. PPU cards with PhysX support were available from the manufacturers ASUS, BFG Technologieshttp://www.bfgtech.com/news_8.31.05.html and ELSA Technology. Beginning with version 2.8.3 of the PhysX SDK, support for PPU cards was dropped, and PPU cards are no longer manufactured. GPU After Nvidia's acquisition of Ageia, PhysX development turned away from PPU extension cards and focused instead on the GPGPU capabilities of modern GPUs. A graphics processing unit or GPU (also occasionally called visual processing unit or VPU) is a dedicated graphics rendering device for a personal computer, workstation or game console. Modern GPUs are very efficient at manipulating and displaying computer graphics, and their highly parallel structure makes them more effective than general-purpose CPUs for a range of complex algorithms, such as accelerating physical simulations using PhysX. A GPU can sit on top of a video card, or it can be integrated directly into the motherboard. More than 90% of new desktop and notebook computers have integrated GPUs. Any CUDA-ready GeForce graphics card (series 8 and newer, with a minimum of 32 cores and 256MB of video memory ) can take advantage of PhysX without the need to install a dedicated PhysX card. Versions 186 and newer of the ForceWare drivers disable PhysX hardware acceleration if a GPU from a different manufacturer, such as AMD, is present in the system. Representatives at Nvidia stated to customers that the decision was made due to development expenses, and for quality assurance and business reasons. This decision has caused a backlash from the community that led to the creation of a community patch for Windows 7, circumventing the GPU check in Nvidia's updated drivers. To counter this patch, Nvidia implemented a time bomb in driver versions 196 and 197 that slowed down hardware accelerated PhysX and reversed the gravity, but an updated version of the patch removed all unwanted effects. Real World Technologies analysis On , Real World Technologies published an analysisReal World Technologies - PhysX87: Software Deficiency of the PhysX architecture. According to this analysis, most of the code used in PhysX applications at the time was based on x87 instructions without any multi-threading optimization. This could cause significant performance drops when running PhysX code on the CPU. The article suggested that a PhysX rewrite using SSE instructions may substantially lessen the performance discrepancy between CPU PhysX and GPU PhysX. In response to the Real World Technologies analysis, Mike Skolones, product manager of PhysX, said that SSE support had been left behind because most games are developed for consoles first and then ported to the PC. As a result, modern computers run these games faster and better than the consoles even with little or no optimization. Senior PR manager of Nvidia, Bryan Del Rizzo, explained that multi-threading had already been available with CPU PhysX 2.x and that it had been up to the developer to make use of it. He also stated that automatic multithreading and SSE would be introduced with version 3 of the PhysX SDK. PhysX SDK 3.0 was released in May 2011 and represented a significant rewrite of the SDK, bringing improvements such as more efficient multithreading and a unified code base for all supported platforms. Use PhysX in video games PhysX technology is used by game engines such as Unreal Engine (version 3 onwards), Unity 3D, Gamebryo, Vision (version 6 onwards), Instinct Engine,http://www.instinctengine.com/index.php/products/instinct-studio-sdk Panda3D, Diesel, Torque, HeroEngine and BigWorld. As one of the handful of major physics engines, it is used in many games, such as Bulletstorm, Need for Speed: Shift, Castlevania: Lords of Shadow, Mafia II, Alice: Madness Returns, Batman: Arkham City etc. Most of these games use the CPU to process the physics simulations. Video games with optional support for hardware-accelerated PhysX often include additional effects such as tearable cloth, dynamic smoke or simulated particle debris. PhysX in other software Other software with PhysX support includes: *Active Worlds (AW), a 3D virtual reality platform with its client running on Windows *Autodesk 3ds Max, Autodesk Maya and Autodesk Softimage, computer animation suites *DarkBASIC Professional (with DarkPHYSICS upgrade), a programming language targeted at game development *DX Studio, an integrated development environment for creating interactive 3D graphics *Futuremark's 3DMark06 and Vantage benchmarking tools *Microsoft Robotics Studio, an environment for robot control and simulation *Nvidia SuperSonic Sled and Raging Rapids Ride, technology demos *OGRE (via the NxOgre wrapper), an open source rendering engine *The Physics Abstraction Layer, a physical simulation API abstraction system (it provides COLLADA and Scythe Physics Editor support for PhysX) *Rayfire, a plug-in for Autodesk 3ds Max that allows fracturing and other physics simulations See also * Bullet * Havok * Open Dynamics Engine * OpenGL * Vortex References External links *Official Product Site *"PS Meeting 2005: Sony Hooks Up with AGEIA" – IGN News Story *Techgage: AGEIA PhysX.. First Impressions *Tom's Hardware: Is AGEIA's PhysX failing? *Techgage: NVIDIA's PhysX: Performance and Status Report *Techgage: NVIDIA's PhysX: Performance and Status Report - Part 2 Category:Linux software Category:Mac OS X science software Category:Nvidia Category:PlayStation 3 software Category:Computer physics engines Category:Virtual reality Category:Wii software Category:Windows software Category:Xbox 360 software Category:Mac OS X programming tools